Computer networks comprise pluralities of computer nodes, or nodes. Computer nodes may each be furnished with processing and storage capability. Where a node is non-virtual it may comprise at least one processor, where a node is virtual, or logical, it may have access to a physical processing resource, such as for example at least one processor. Where a node is non-virtual it may comprise memory, where a node is virtual, or logical, it may have access to a physical memory resource, such as for example RAM memory and/or magnetic storage media.
Computer networks comprise, in addition to computer nodes, connections between computer nodes comprised in the computer network. Such connections may be wire-line or at least in part wireless. Wired connections may comprise Ethernet or universal serial bus, USB, connections, for example, and wireless connections may comprise wireless local area network, WLAN, or Bluetooth connections, for example.
Connections between nodes define a topology of the network. A network topology may be arranged to enable the network to fulfil its purpose. Some networks use a star topology where nodes exclusively or predominantly have connections to a central node. Some networks use a ring topology where nodes are arranged with connections to two other nodes, the connections overall arranging the nodes into a ring. Other networks are unstructured or comprise a mix of elements adhering to different topologies. For example, a peer-to-peer network may comprise unstructured connections between peers and central controller nodes, which are connected to a large number or peer nodes.
A distributed computing network comprises nodes that communicate with each other and coordinate their actions to collectively process information. The nodes may interact with each other to achieve a common coal, wherein such coordination and interaction may comprise passing messages between nodes, for example via at least one message queue. A distributed network may perform processing concurrently in different nodes to accomplish a goal.
A distributed hash table, DHT, is a decentralized type of distributed computing network. In a DHT, information may be stored based on a key, which may comprise, for example, a subscriber identity. The key may be hashed using a hash function to determine a node participating in the DHT that is to serve the subscriber. Each DHT node may be configured to serve a range of values in a space spanned by output of the hash function. Specific types of DHT include Kademlia and Chord.